TOP

SQL Server için SQL Stored Procedures

Stored Procedure nedir?

Stored Procedure (Saklı Prosedür), kodun tekrar tekrar kullanılabilmesi için kaydedilebilen SQL kodu hazırlanmıştır.

Bu nedenle, tekrar tekrar yazdığınız bir SQL sorgunuz varsa, bunu saklı prosedür olarak kaydedin ve çalıştırmak için çağırın.

Ayrıca, saklı yordamın iletilen parametre değerleri üzerinde işlem yapabilmesi için, saklı yordama parametreleri de iletebilirsiniz.


Stored Procedure Sözdizimi

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Stored Procedure yürütülüyor

EXEC procedure_name

Gösteri veritabanı

Aşağıda "Northwind" veritabanının "Customers" ("Müşteriler") tablosundan bir örnek verilmiştir:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Stored Procedure Örnek

Aşağıdaki SQL sorgusu, Müşteriler tablosundaki tüm kayıtları seçen "SelectAllCustomers" adlı bir saklı yordam oluşturur:

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

Yukarıdaki saklı yordamı şu şekilde yürütelim:

EXEC SelectAllCustomers

Stored Procedure tek parametreli

Aşağıdaki SQL sorgusu, Müşteriler tablosundan belirli bir şehirdeki müşterileri seçen bir saklı yordam oluşturur:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO

Yukarıdaki saklı yordamı şu şekilde yürütelim:

EXEC SelectAllCustomers @City = 'London'

Stored Procedure birçok parametreyle

Birden fazla parametreyi yapılandırmak, yani her parametreyi ve veri tipini aşağıda gösterildiği gibi virgülle ayırarak listelemek çok kolaydır.

Aşağıdaki SQL ifadesi, Müşteriler tablosundan belirli bir şehirdeki belirli bir posta koduna sahip müşterileri seçen bir saklı yordam oluşturur:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO

Yukarıdaki saklı yordamı şu şekilde yürütelim:

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'